_vvvv_oooo_iiii_dddd _SSSS_VVVV______WWWW_AAAA_IIII_TTTT_((((_ssss_vvvv______tttt _****_s_v_p, void *_l_k_p, int _r_v);
AAAArrrrgggguuuummmmeeeennnnttttssss
_s_v_p Pointer to the synchronization variable on which to sleep.
_l_k_p Pointer to either a basic lock or a mutual exclusion lock.
_r_v Return value from LOCK(D3), or 0.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
_SSSS_VVVV______WWWW_AAAA_IIII_TTTT causes the calling process to go to sleep waiting for a call to
_SSSS_VVVV______SSSS_IIII_GGGG_NNNN_AAAA_LLLL or _SSSS_VVVV______BBBB_RRRR_OOOO_AAAA_DDDD_CCCC_AAAA_SSSS_TTTT for the synchronization variable specified by
_s_v_p.
The lock specified by _l_k_p must be held by the caller upon entry. The
lock is released after the process is queued on the synchronization
variable -- when the caller returns from _SSSS_VVVV______WWWW_AAAA_IIII_TTTT the lock is not held.
If _l_k_p specifies a basic lock, _r_v must specify the return value from the
lock acquisition call; if _l_k_p specifies a mutual exclusion (sleeping)